68 research outputs found

    Algorithmic Debugging of Real-World Haskell Programs: Deriving Dependencies from the Cost Centre Stack

    Get PDF
    Existing algorithmic debuggers for Haskell require a transformation of all modules in a program, even libraries that the user does not want to debug and which may use language features not supported by the debugger. This is a pity, because a promising ap- proach to debugging is therefore not applicable to many real-world programs. We use the cost centre stack from the Glasgow Haskell Compiler profiling environment together with runtime value observations as provided by the Haskell Object Observation Debugger (HOOD) to collect enough information for algorithmic debugging. Program annotations are in suspected modules only. With this technique algorithmic debugging is applicable to a much larger set of Haskell programs. This demonstrates that for functional languages in general a simple stack trace extension is useful to support tasks such as profiling and debugging

    Lightweight Computation Tree Tracing for Lazy Functional Languages

    Get PDF
    A computation tree of a program execution describes computations of functions and their dependencies. A computation tree describes how a program works and is at the heart of algorithmic debugging. To generate a computation tree, existing algorithmic debuggers either use a complex implementation or yield a less informative approximation. We present a method for lazy functional languages that requires only a simple tracing library to generate a detailed computation tree. With our algorithmic debugger a programmer can debug any Haskell program by only importing our library and annotating suspected functions

    Publisher’s Note: “Dispersion calibration for the National Ignition Facility electron–positron–proton spectrometers for intense laser matter interactions” [Rev. Sci. Instrum. 92, 033516 (2021)] (Rev. Sci. Instrum. 92, 059902 (2021)

    Get PDF
    Electron-positron pairs, produced in intense laser-solid interactions, are diagnosed using magnetic spectrometers with image plates, such as the National Ignition Facility (NIF) Electron Positron Proton Spectrometers (EPPS). Although modeling can help infer the quantitative value, the accuracy of the models needs to be verified to ensure measurement quality. The dispersion of low-energy electrons and positrons may be affected by fringe magnetic fields near the entrance of the EPPS. We have calibrated the EPPS with six electron beams from a Siemens Oncor linear accelerator (linac) ranging in energy from 2.72.7--15.215.2 MeV\mathrm{MeV} as they enter the spectrometer. A Geant4 TOPAS Monte-Carlo simulation was set up to match depth dose curves and lateral profiles measured in water at 100100 cm\mathrm{cm} source-surface distance. An accurate relationship was established between the bending magnet current setting and the energy of the electron beam at the exit window. The simulations and measurements were used to determine the energy distributions of the six electron beams at the EPPS slit. Analysis of the scanned image plates together with the determined energy distribution arriving in the spectrometer provide improved dispersion curves for the EPPS.Comment: Published in Review of Scientific Instruments, 5 pages, 3 figures, This article may be downloaded for personal use only. Any other use requires prior permission of the author and AIP Publishin

    SSA Back-Translation: Faster Results with Edge Splitting and Post Optimization

    No full text
    A compiler translates one representation of a software program into another. Beside translation compilers often have other tasks such as optimizating the result and warning the programmer for mistakes. Internally a compiler uses an Intermediate Representation (IR) for analysis and manipulation of the program at hand. Data dependencies in most programming languages are implicit. Some compilers use an IR in Static Single Assignment (SSA) in which each local variable is only defined once to simplify analysis of data dependencies. If the number of assignments in the IR is not restricted, it is said to be in normal form. Input of a compiler is in normal form and translation is needed to bring the IR in SSA form. SSA-form contains phi functions to merge values based on control flow. After optimizations on SSA-form are performed it is not trivial to translate SSA-form back to normal form because the properties of phi nodes cannot be translated directly to processor instructions. The algorithms of Briggs and Sreedhar are the two major methods of back-translation. This thesis presents a modification that can be applied to the methods of Briggs and Sreedhar. The original methods append copy instructions to the end of existing source blocks. The presented modification splits edges between source and target by inserting phiblocks where the algorithms of Sreedhar and Briggs emit copy operations to replace phi functions. For this study a bridge between LLVM and CoSy was built such that LLVM can be used for the optimizations on SSA-form and CoSy for the post back-translation optimizations. Four back-translation algorithms are implemented in CoSy. The methods are compared through experiments with six testcases from the SPEC benchmark suite. On average the presented modification reduces the execution time of the resulting code with 5% for Briggs’ method and 3% for Sreedhar’s method. Experiments also show that the result of back-translation with or without phiblocks is suboptimal: repeating optimizations after back-translation that were already done on the IR in SSA-form can reduce the execution time on average with 18%.Computer EngineeringMicroelectronics & Computer EngineeringElectrical Engineering, Mathematics and Computer Scienc

    Ontwerp- en gedragsonderzoek om scheidingsgedrag te verbeteren

    No full text
    De Hogeschool van Amsterdam doet met het project BASSTA onderzoek naar het verbeteren van het scheidingsgedrag van huishoudens. Middels doe-boeken is onderzocht hoe mensen thuis met hun afval omgaan. Op basis van deze analyse worden gedragsinterventies ontworpen
    • …
    corecore